# 在一个难数据集上应用AdaBoost，预测患有疝病的马是否能存活
import adaboost
# 载入训练数据集
datArr,labelArr = adaboost.loadDataSet('horseColicTraining2.txt')
# 训练
classifierArray,aggClassEst = adaboost.adaBoostTrainDS(datArr,labelArr,50)
print ("bestTree: ",classifierArray[0])
# 载入测试数据集
testArr,testLabelArr = adaboost.loadDataSet('horseColicTest2.txt')
# 预测67个样本
prediction10 = adaboost.adaClassify(testArr,classifierArray)
# 计算错误率
errArr = adaboost.mat(adaboost.ones((67,1)))
errNum = errArr[prediction10!=adaboost.mat(testLabelArr).T].sum()   # 错误数
errorRate = errNum/67
print ("predict error: ",errorRate)

# 绘制ROC曲线，计算AUC值
adaboost.plotROC(aggClassEst.T,labelArr)